computercraftfandomcom_ru-20200213-history
Minecraft Web.Мой собственый проэкт
Вступление Как то играл я на сервере с другом, и показалось мне, что тех программ, которые есть для РедНет, явно недостаточно. Возможности есть, но они не используются, так как моги бы, печалька =(. И вот решил я написать программку, которая использовала бы весь скрытый потенциал РедНет. И вот в короткие сроки такая программка была мною написана! Возможности системы 1.Создавать собственные «интернет странички». 2.Выкладывать на закачку файлы. 3.Воможность задать адрес своего сайта буквами, а не ID. 4.Скачака файлов (выкидываем дискеты). 5.Возможность создать собственную чат-комнату Инструкция По использованию браузера 1.Отредактируйте поле dnsId на id днс сервера, который Вы будете использовать. 2.Запустите браузер и введите url сайта, на который хотите отправиться. 3.Вводя названия страниц, путешествуйте по сайту, для скачивания файлов или перехода в чат-комнату нужно просто перейти на соответствующую страницу, введите "back" для выбора другого сайта или "exit" для выхода из браузера. По настройке днс системы 1.Сохраните на любом свободном компьютере программу днс сервера. 2.Запустите сервер на короткое время, и он автоматически создаст файлы необходимые ему для работы, редактируя их Вы, будете влиять на работу всего сервера, разберем их: Файл config.MDSF: здесь хранится конфиг сервера, пока он включает 2 поля – сторону, с которой у вас стоит модем и параметр записи запросов в соответствующий файл, отредактируйте эти поля. Файл baned_list.MDSF: позволяет забанить компьютеры по их id, просто пишите их в файл. Файл site_list.MDSF: здесь необходимо писать списки URL и ид серверов, если вам необходимо добавить новый сервер в переадресацию просто допишите в файл строчки по формату: URL сервера (например, http://vasa.com) ид сервера (например, 55) Файл needs_list.MDSF: Здесь находится список запросов, которые получает днс сервер. 3.Запустите систему днс (рекомендую файл с ней сохранять с названием "startup"). По созданию и настройке сервера 1.Скопируйте программу сервера, на компьютер который будет "сервером". 2.Запустите его на короткое время и выключите, сервер создаст несколько файлов необходимых ему для работы, разберем их: config.MWSF: файл конфигурации сервера, включает 2 поля: сторона с которой у вас стоит модем (по умолчанию left), URL вашего сервера (нужно написать) и параметр записи запросов в соответствующий файл, отредактируйте эти поля. baned_list.MWSF: позволяет забанить компьютеры по их id, просто пишите их в файл. page_list.MWSF: этот файл включает списки страничек доступных для просмотра на вашем сервере, чтоб добавить новую страничку просто допишите имя файла, в котором она лежит без разрешения .MWSF. file_list.MWSF: то же самое, что и page_list.MWSF, но включает списки файлов доступных для скачивания, добавлять по тем же правилам. chat_list.MWSF: Включает списки переадресации на определенные чат-комнаты. Чтобы добавить новую комнату в переадресацию, добавьте в файл запись по формату: Ссылка на чат комнату (например, UaChating) Ид чат сервера (например, 55) Файл needs_list.MDSF: Здесь находится список запросов, которые получает веб сервер. 404.MWSF: страница 404, отредактируйте по своему усмотрению. index.MWSF: Стартовая страница сайта, отредактируйте по своему усмотрению. 3.Запускайте сервер. По созданию чат-комнаты 1.Скопируйте программу чат сервера на компьютер, который будет сервером. 2.Запустите программу. 3.Переадресовуйте через ваш сайт людей в эту комнату. Код Браузера dnsId = 6 function chatingMode(chatIds) chatIds = chatIds * 1 term.clear() m=true msg = "userInFfF" while m do if msg "exit" then b = false m = false c = false a = false g = false elseif msg "back" then b = false m = false a = false g = false else rednet.send(chatIds, msg) fff, msg1 = rednet.receive(30) fff, msg1 = rednet.receive(30) term.clear() print(msg1) msg=" " msg=read() end end rednet.send(chatIds, "userOutFfF") end function writeFile (fileName) id, dFile = rednet.receive() file = io.open(fileName, "w") file:write(dFile) file:close() end dnsId = 6 hello = "<-------------Minecraft Web Browser-------------> \n<---Copyright 2012 Dimach.All rights reserved---> \n<-----------------Vvedite adres----------------->" downloadSuc = "<-------------Fail zagrugen uspesno------------->" i = 0 function open() local bOpen, sFreeSide = false, nil for n,sSide in pairs(rs.getSides()) do if peripheral.getType( sSide ) "modem" then sFreeSide = sSide if rednet.isOpen( sSide ) then bOpen = true break end end end if not bOpen then if sFreeSide then rednet.open( sFreeSide ) return true else print( "Rabota ne vozmogna, podkluchite modem" ) return false end end return true end if open() then while i<20 do i = i + 1 print(hello) term.clear() end c = true while c do m = true g = true print(hello) url = read() a = true while a do rednet.send(dnsId, url) id, servId = rednet.receive(30) if id dnsId then if servId "Baned" then term.clear() print("Vu zabanenu v sisteme dns") else if servId ~= "fail_404" then a = false else term.clear() a = false g = false b = false print("<--Minecraft Web Browser ne moget nayti server-->") end end end end page = "index" if g then b = true end while b do servId = servId*1 term.clear() rednet.send(servId, page) id, pageText = rednet.receive(30) if pageText "download" then writeFile (page) term.clear() print(downloadSuc) elseif pageText "chating" then id, chatId = rednet.receive() chatingMode(chatId) elseif pageText "Baned" then print("Vu zabanenu na etom sayte") read() a = false g = false b = false else term.clear() print(pageText) end if m true then page = read() if page "exit" then b = false c = false elseif page "back" then b = false end end term.clear() end end rednet.close(sFreeSide) term.clear() else end Днс сервера function blackList(userId) baned=false var1 = false file = io.open("baned_list.MDSF", "r") a=file:read() a = -1 repeat a = a * 1 if userId a then baned = true end a=file:read() until a nil file:close() return baned end function readConfig() file = io.open("config.MDSF", "r") fff=file:read() fff=file:read() side=file:read() fff=file:read() writeFiles = file:read() writeFile = false if writeFiles "true" then writeFile = true end file:close() end function fileDetected(name) file = io.open(name, "a") file:close() file = io.open(name, "r") test=file:read() if test nil then return false else return true end file:close() end function firstStart() if fileDetected("site_list.MDSF") then else file = io.open("site_list.MDSF", "a") file:close() file = io.open("site_list.MDSF", "w") file:write("--suda pisite spiski saytov i ih id") file:close() end if fileDetected("baned_list.MDSF") then else file = io.open("baned_list.MDSF", "a") file:close() file = io.open("baned_list.MDSF", "w") file:write("--zdes pisite id kompov kotoruh vu hotite zabanit") file:close() end if fileDetected("config.MDSF") then else file = io.open("config.MDSF", "a") file:close() file = io.open("config.MDSF", "w") file:write("--zdes nahoditsa konfig DNS servera \n--storona s kotoroy u vas stoit modem \nleft\n--zapisuvat istoriyu zaprosov v file \nfalse") file:close() end if writeFile then if fileDetected("needs_list.MDSF") then else file = io.open("needs_list.MDSF", "a") file:close() file = io.open("needs_list.MDSF", "w") file:write("--Zdes nahodatsa spiski zaprosov dns servera\n--Nachalo spiska zaprosov") file:close() end end end function siteList (siteName) h = false file = io.open("site_list.MDSF", "r") fff=file:read() repeat a=file:read() if a siteName then ids = file:read() h = true else fff=file:read() end until a nil file:close() if h then return ids else return "fail_404" end end readConfig() firstStart() rednet.open(side) while true do id, url = rednet.receive() if not blackList(id) then servId = siteList(url) else servId = "Baned" end rednet.send(id, servId) print("Computer "..id.." need URL "..url.." return "..servId) if writeFile then file100500 = io.open("needs_list.MDSF", "r") bbb = file100500:read() bbb = file100500:read() ddd = "--Zdes nahodatsa spiski zaprosov dns servera" bbb = "--Nachalo spiska zaprosov" repeat ddd = ddd.."\n"..bbb bbb = file100500:read() until bbb nil file100500:close() file100500 = io.open("needs_list.MDSF", "w") file100500:write(ddd.."\nComputer "..id.." need URL "..url.." return "..servId) file100500:close() end end Веб сервера function blackList(userId) baned=false var1 = false file = io.open("baned_list.MWSF", "r") a=file:read() a = -1 repeat a = a * 1 if userId a then baned = true end a=file:read() until a nil file:close() return baned end function readCfg() file1 = io.open("config.mwsf", "r") fff=file1:read() fff=file1:read() side=file1:read() fff=file1:read() siteName=file1:read() fff=file1:read() writeFiles = file1:read() writeFile = false if writeFiles "true" then writeFile = true end file1:close() end function fileDetected(name) file = io.open(name, "a") file:close() file = io.open(name, "r") test=file:read() if test nil then return false else return true end file:close() end function firstStart() if fileDetected("page_list.MWSF") then else file = io.open("page_list.MWSF", "a") file:close() file = io.open("page_list.MWSF", "w") file:write("--suda pisite nazvaniya stranic dostupnuh dlya prosmotra") file:close() end if fileDetected("baned_list.MWSF") then else file = io.open("baned_list.MWSF", "a") file:close() file = io.open("baned_list.MWSF", "w") file:write("--zdes pisite id kompov kotoruh vu hotite zabanit") file:close() end if fileDetected("file_list.MWSF") then else file = io.open("file_list.MWSF", "a") file:close() file = io.open("file_list.MWSF", "w") file:write("--suda pisite nazvaniya faylov dostupnuh dya skachivaniya") file:close() end if fileDetected("chat_list.MWSF") then else file = io.open("chat_list.MWSF", "a") file:close() file = io.open("chat_list.MWSF", "w") file:write("--suda pisite url chat serverov kotorue budut dustupnu cerez vas sayt i ih ID") file:close() end if fileDetected("config.MWSF") then else file = io.open("config.MWSF", "a") file:close() file = io.open("config.MWSF", "w") file:write("--zdes nahodatsa nastroyki servera \n--storona s kotoroy u vas stoit modem \nleft\n--url vasego servera \nhttp://Dns.com/\n--zapisuvat istoriyu zaprosov v file \nfalse") file:close() end if fileDetected("index.MWSF") then else file = io.open("index.MWSF", "a") file:close() file = io.open("index.MWSF", "w") file:write("Startovaya stranica sayta") file:close() end if fileDetected("404.MWSF") then else file = io.open("404.MWSF", "a") file:close() file = io.open("404.MWSF", "w") file:write(" \n PAGE 404 =\n ") file:close() end if (writeFile) and (not fileDetected("needs_list.MWSF")) then file = io.open("needs_list.MWSF", "a") file:close() file = io.open("needs_list.MWSF", "w") file:write("--Zdes nahodatsa spiski zaprosov web servera\n--Nachalo spiska zaprosov") file:close() end end function chatList (chatName) h = false file = io.open("chat_list.MWSF", "r") fff=file:read() repeat a=file:read() if a chatName then ids = file:read() h = true else fff=file:read() end until a nil file:close() if h then return true else return false end end function readPage (page) site = siteName..page page = page.. ".MWSF" file = io.open(page, "r") a=file:read() returnPage = site.."\n" repeat returnPage = returnPage.. a.. "\n" a=file:read() until a nil file:close() return returnPage end function pageList (pageName) var1 = false file = io.open("page_list.MWSF", "r") a=file:read() repeat a=file:read() if pageName a then var1 = true end until a nil file:close() return var1 end function fileList (fileName) var2 = false file = io.open("file_list.MWSF", "r") a=file:read() repeat a=file:read() if fileName a then var2 = true end until a nil file:close() return var2 end readCfg() firstStart() rednet.open(side) while true do pageText = " " id, needPage = rednet.receive() print("Computer "..id.." need page "..needPage) if writeFile then file100500 = io.open("needs_list.MWSF", "r") bbb = file100500:read() bbb = file100500:read() ddd = "--Zdes nahodatsa spiski zaprosov web servera" bbb = "--Nachalo spiska zaprosov" repeat ddd = ddd.."\n"..bbb bbb = file100500:read() until bbb nil file100500:close() file100500 = io.open("needs_list.MWSF", "w") file100500:write(ddd.."\nComputer "..id.." need page "..needPage) file100500:close() end if not blackList(id) then if needPage "index" or pageList(needPage) then pageText = readPage(needPage) elseif fileList(needPage) then rednet.send(id, "download") pageText = readPage(needPage) elseif chatList(needPage) then chatId = ids.." " ids = 0 rednet.send(id, "chating") rednet.send(id, chatId) pageText = " " else pageText = readPage("404") end else pageText = "Baned" end rednet.send(id, pageText) end Для чат комнаты function open() local bOpen, sFreeSide = false, nil for n,sSide in pairs(rs.getSides()) do if peripheral.getType( sSide ) "modem" then sFreeSide = sSide if rednet.isOpen( sSide ) then bOpen = true break end end end if not bOpen then if sFreeSide then rednet.open( sFreeSide ) return true else print( "Rabota ne vozmogna, podkluchite modem" ) return false end end return true end if open() then a = 0 while true do chatHistori = "<--------Avtomaticheskaya ochistka chata-------->" while a<30 do id, msg = rednet.receive() chatHistori = chatHistori.. "\n" .. id.. ":" ..msg rednet.send(id, chatHistori) print(id..":"..msg) a = a + 1 rednet.send(id, chatHistori) end a = 0 end end История версий Версия 1.2 В систему веб добавлен чат. Добавлена возможность банить компьютеры по id . Добавлена возможность записи запросов в файл. Багфиксы. Версия 1.1 Добавлены файлы конфигурации. Убрана потребность указывать сторону у браузера. Исправлены некоторые баги и ошибки. Версия 1.0 Релиз браузера сервера и системы DNS. Если у вас есть предложения или замечания по поводу WEB системы пишите в коментах. Copyright 2012 Dimach. All rights reserved!!! Категория:Програмы